package webbrow.search.model;

import java.util.List;
import webbrow.board.vo.BoardSpringVO;
import webbrow.board.vo.ListVO;
import webbrow.board.vo.PagingBean;

public class SearchServiceImpl implements SearchService {
	private SearchDao searchDao;
	public SearchServiceImpl(SearchDao searchDao){
		super();
		this.searchDao=searchDao;
	}
	/**
	 * 검색 카테고리 별 입력한 키워드 값에 대하여 검색 결과 출력하는 부분
	 * if 문을 이용해 4가지 카테고리별로 수행되는 결과 값을 각각 다르게 낸다.
	 * PagingBean 을 통해 결과 값을 ListVO 형태로 넘겨준다.
	 */
	@Override
	public ListVO searchByKeyword(SearchCommand command) throws Exception {
		//System.out.println("service impl 처음 들어오는 command"+command);
		List<BoardSpringVO> list=null;
		int total= 1; // 선택한 카테고리의 게시물의 총 갯수
		int pn = 1;  // 페이지 수
		if(command.getPageNo()!=null){
			pn=Integer.parseInt(command.getPageNo());
		}else{
			command.setPageNo("1");
		}
		//System.out.println("넘어온 keywordtype 값  : "+command.getKeywordType());
		if(command.getKeywordType().equals("title")){
			list=searchDao.searchContentByTitle(command);
			total=searchDao.selectTitlePostingCount(command.getKeyword());
			//System.out.println("title 검색후 리스트값"+list);
		}else if(command.getKeywordType().equals("writer")){
			//System.out.println("if문 실행하고 "+command.getKeywordType());
			list=searchDao.searchContentByWriter(command);
			total=searchDao.selectWriterPostingCount(command.getKeyword());
		}else if(command.getKeywordType().equals("content")){
			list=searchDao.searchContentByContent(command);
			total=searchDao.selectContentPostingCount(command.getKeyword());
		}else if(command.getKeywordType().equals("title_content")){
			list=searchDao.searchContentByTitleContent(command);
			total=searchDao.selectTitleContentPostingCount(command.getKeyword());
		}
		//System.out.println("검색한 후 리스트값"+list);
		PagingBean pb=new PagingBean(total,pn);  
		return new ListVO(list,pb);
	}
}
